package com.jl.service;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jl.commons.result.PageDataInfo;
import com.jl.model.DamageComponent;

import java.util.Map;

/**
 * <p>
 * 损坏(更换)零件表 服务类
 * </p>
 *
 * @author JiangJian
 * @since 2019-03-06
 */
public interface IDamageComponentService extends IService<DamageComponent> {

    /**
     * 分页查询损坏零件信息数据
     * @param pageDataInfo 分页配置信息
     * @param qw 筛选条件
     * @return
     */
    void selectDamageComponentDataGrid(PageDataInfo<Map<String,Object>> pageDataInfo, QueryWrapper<DamageComponent> qw);

    /**
     * 分页查询易损零件信息数据
     * @param pageDataInfo 分页配置信息
     * @param qw 筛选条件
     * @return
     */
    void selectEasyDamageComponent(PageDataInfo<Map<String,Object>> pageDataInfo, QueryWrapper<DamageComponent> qw);
    /**
     * 设备更换配件列表
     * 这里的Param中必须使用 ew为名称 这是因为使用了mybatisplus中的内定的参数
     * 且在xml中必须是使用 美元符 $ 来作为占位符
     * @param pageDataInfo 分页参数
     * @param deviceId 设备id
     * @return
     */
    void selectDamageComponentByDeviceId(PageDataInfo<Map<String,Object>> pageDataInfo, Long deviceId);
    /**
     * 获取某台设备中的某一配件的平均寿命
     * @param deviceId 设备id
     * @param componentId 配件id
     * @return
     */
    Integer getDeviceComponentAvgLife(Long deviceId,Long componentId);

    /*****************************************************统计代码******************************************************/
    /**
     * 获取故障次数最多的部位
     * @param pageDataInfo 分页参数
     * @param type 按周还是按月 1 周 2月
     * @param startTime 起始时间
     * @param endTime 结束时间
     * @return 更换配件信息
     */
    void getTopDamageComponent(PageDataInfo<Map<String,Object>> pageDataInfo, Integer type,String startTime,String endTime);


}
